mod cli;
mod process;
mod utils;
pub use cli::{
    Base64DecodeOpts, Base64EncodeOpts, Base64SubCommand, CsvOpts, GenPassOpts, HttpSubCommand,
    JwtSignOpts, JwtSubCommand, JwtVerifyOpts, Opts, ServeOpts, SubCommand, TextGenerateOpts,
    TextSignFormat, TextSignOpts, TextSubCommand, TextVerifyOpts,
};
use enum_dispatch::enum_dispatch;
pub use process::{
    process_csv, process_decode, process_encode, process_genpass, process_http_server,
    process_sign_jwt, process_text_generate, process_text_sign, process_text_verify,
    process_verify_jwt,
};

#[allow(async_fn_in_trait)]
#[enum_dispatch]
pub trait CmdExecutor {
    /// command line execute method s
    async fn execute(self) -> anyhow::Result<()>;
}
